#pragma once

#include "messenging/event/ISystemEvent.h"

class SystemEvent : public ISystemEvent
{
public:
	BEGIN_DEFINE_CLASS(CLSID_SystemEvent)
		DEFINE_INTERFACE_ENTRY(ISystemEvent)
	END_DEFINE_CLASS()

	SystemEvent();
	virtual ~SystemEvent();

	event_implement(SystemEventHandler,LButtonDown);
	event_implement(SystemEventHandler,LButtonUp);
	event_implement(SystemEventHandler,LButtonDoubleClick);

	event_implement(SystemEventHandler,RButtonDown);
	event_implement(SystemEventHandler,RButtonUp);
	event_implement(SystemEventHandler,RButtonDoubleClick);


	event_implement(SystemEventHandler,MouseMove);
	event_implement(SystemEventHandler,MouseWheel);

	event_implement(DrawingEventHandler,Drawing);

	event_implement(SystemEventHandler,ExecuteCommand);
	event_implement(SystemEventHandler,UpdateUI);
};

AUTO_REGISTER_CLASSMAP_ENTRY_singleton(SystemEvent)